package demo1;

import org.springframework.context.annotation.AnnotationConfigApplicationContext;

/**
 * Spring核心框架，是一个Bean容器，帮我们管理项目中用到的类。
 */
public class Demo {
    public static void main(String[] args) throws Exception {
        //1.硬编码，自己new，然后创建对象
        //优点：性能好，简单  缺点：耦合高，维护成本高
        Person p = new Person();
        p.sayHello();

        //2.使用反射机制
        //优点：解耦合，代码灵活
        //缺点：代码复杂，性能低
        Class cla = Class.forName("demo1.Person");
        Person p2 = (Person) cla.newInstance();
        p2.sayHello();

        /**
         * 3.使用Spring容器管理对象
         */
        AnnotationConfigApplicationContext context =
                new AnnotationConfigApplicationContext("demo1");
        Person p3 = (Person) context.getBean(Person.class);
        p3.sayHello();
    }
}
